package view.listener;

import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.ui.IEditorPart;

import singleton.Singleton;
import view.views.CSADView;
import controller.data.fundamental.TabItemCategory;
import controller.data.readDocumentation.ReadDocumentationRequest;

public class AdaptListener extends SelectionAdapter {

	private final CSADView view;

	public AdaptListener(CSADView view) {
		this.view = view;
	}

	@Override
	public void widgetSelected(org.eclipse.swt.events.SelectionEvent event) {
		String tmp = view.tabfolder.getSelection()[0].getText();
		if (tmp.compareTo(Singleton.getInstance().getSelectedTab().getTabItemName()) != 0 /* view.selectedTab.getTabItemName()) != 0*/) {
			// Das Tab ist nicht mehr das selbe!
			//view.selectedTab 
			//view.selectedTab = new TabItemCategory(tmp, tmp.toLowerCase().replaceAll(" ", "")); // Tabzuweisung zum aktuellen
			Singleton.getInstance().setSelectedTab(new TabItemCategory(tmp, tmp.toLowerCase().replaceAll(" ", "")));
			IEditorPart activeEditor = view.getActiveEditor();
			// Speichern des aktiven Tab's um diesen nach her wieder zu laden!
			if (view.editorCom != null) { /*
										 * Der Kommentareditor ist offen =>
										 * Aktualisierung
										 */
				view.editorCom = view.refreshOrOpenEditor(view.editorCom,
						"muster.mene");
				view.setActivePageBack(activeEditor);
			}
			if (view.getEditorDoc() != null) { /*
												 * Der Dokumentareditor ist
												 * offen => Aktualisierung
												 */
				view.setEditorDoc(view.refreshOrOpenEditor(view.getEditorDoc(),
						"muster.min"));
				view.setActivePageBack(activeEditor);
			}
		}
			view.listOfData = Singleton.getInstance().getUseCaseController()
			.readDocumentation(new ReadDocumentationRequest(Singleton.getInstance().getSelectedTab().getCategoryName(), view.searchString));
			view.createTabView(); /* Das eigentliche createPartControl */
	}
}
